//
//  KNViewController.m
//  YYDemo
//
//  Created by lipeng on 2019/5/9.
//  Copyright © 2019 lipeng. All rights reserved.
//

#import "KNViewController.h"

@interface KNViewController ()

@end

@implementation KNViewController

/*
 *  控制器生命周期函数
 */
#pragma mark - Life Cycle
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    // 添加UIView到当前控制器
    [self setupViews];
}

/*
 *  在这里添加UIView的约束布局相关代码
 */
#pragma mark - Setup UIViews And Constraints
/**
 *  在这里为 self.view 添加子视图
 */
-(void)setupViews{
   
    // 添加约束
    [self setupConstraints];
}

/**
 * 在这里初始化 UIViews 的约束
 */
-(void)setupConstraints{
    
}


/*
 *  这里是实现所有Delegate的地方
 *  每一个Delegate都把对应的protocol名字带上(可中文注释)，delegate方法不要到处乱写，写到一块区域里面去
 
 *  如: #pragma mark - UITableViewDelegate && UITableViewDataSource(注: 根据大家使用习惯UITableView 的两个代理可以写一块,但是不推荐)
 *  如: #pragma mark - SDCycleScrollViewDelegate
 */
#pragma mark - System Delegate
#pragma mark - Custom Delegate

/*
 *  所有button、gestureRecognizer的响应事件都放在这个区域里面，不要到处乱放。
 */
#pragma mark - Event Response

/*
 * 调用网络接口的方法放在此处。
 */
#pragma mark - Access Network Api Method

/*
 * 不是delegate方法的，不是event response方法的，不是life cycle方法的
 * ，不是UIView的约束布局，不是网络接口的方法就是private method了。
 * 如简单的数据加工方法，非通用的工具类等。
 * 使用 "//" 注释
 */
#pragma mark - Private Method

/* getter和setter全部都放在最后*/
#pragma mark - Getters And Setters


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
